Digital video playback capability is increasingly available in all types of hardware platforms, from inexpensive consumer-level computers to super-sophisticated flight simulators. Digital video playback includes displaying video that is accessed from a storage medium or streamed from a real-time source, such as a television signal. As digital video becomes nearly ubiquitous, new techniques to improve the quality and accessibility of the digital video are being developed. For example, in order to store and transmit digital video, it is typically compressed or encoded using a format specified by a standard. Recently H.264, a video compression scheme, or codec, has been adopted by the Motion Pictures Expert Group (MPEG) to be the video compression scheme for the MPEG-4 format for digital media exchange. H.264 is MPEG-4 Part 10. H.264 was developed to address various needs in an evolving digital media market, such as relative inefficiency of older compression schemes, the availability of greater computational resources today, and the increasing demand for High Definition (HD) video, which requires the ability to store and transmit about six times as much data as required by Standard Definition (SD) video.
H.264 is an example of an encoding scheme developed to have a much higher compression ratio than previously available in order to efficiently store and transmit higher quantities of video data, such as HD video data. For various reasons, the higher compression ratio comes with a significant increase in the computational complexity required to decode the video data for playback. Most existing personal computers (PCs) do not have the computational capability to decode HD video data compressed using high compression ratio schemes such as H.264. Therefore, most PCs may not playback highly compressed video data stored on high-density media such as optical Blu-ray discs (BD) or HD-DVD discs. Many PCs include dedicated video processing units (VPUs) or graphics processing units (GPUs) that share the decoding tasks with the PC. The GPUs may be add-on units in the form of graphics cards, for example, or integrated GPUs. However, even PCs with dedicated GPUs typically are not capable of BD or HD-DVD playback. Efficient processing of H.264/MPEG-4 is very difficult in a multi-pipeline processor such as a GPU. For example, video frame data is arranged in macro blocks according to the MPEG standard. A macro block to be decoded has dependencies on other macro blocks, as well as intrablock dependencies within the macro block. In addition, edge filtering of the edges between blocks must be completed. This normally results in algorithms that simply complete decoding of each macro block sequentially, which involves several computationally distinct operations involving different hardware passes. This results in failure to exploit the parallelism that is inherent in modern day processors such as multi-pipeline GPUs.
One approach to allowing PCs to playback high-density media is the addition of separate decoding hardware and software. This decoding hardware and software is in addition to any existing graphics card(s) or integrated GPUs on the PC. This approach has various disadvantages. For example, the hardware and software must be provided for each PC which is to have the decoding capability. In addition, the decoding hardware and software decodes the video data without particular consideration for optimizing the graphics processing hardware which will display the decoded data.
It would be desirable to have a solution for digital video data that allows a PC user to playback high-density media such as BD or HD-DVD without the purchase of special add-on cards or other hardware. It would also be desirable to have such a solution that decodes the highly compressed video data for processing so as to optimize the use of the graphics processing hardware, while minimizing the use of the CPU, thus increasing speed and efficiency.